#include<stdio.h>
#include<unistd.h>
#include<signal.h>
#include<string.h>

//信号捕捉
//struct sigaction act,oact;
//void handler(int signo)
//{
//printf("got %d signo!!\n",signo);
//  sigaction(SIGINT,&oact,NULL);
//
//}
//
//int main()
//{
//  memset(&act,0,sizeof(act));
//  memset(&oact,0,sizeof(oact));
// 
//  act.sa_handler = handler;
//  act.sa_flags = 0;
//  sigemptyset(&act.sa_mask);
//
//  sigaction(SIGINT,&act,&oact);
// while(1)
// {
//   printf("I am a process!!\n");
//   sleep(1);
// }
// 
//  return 0;
//}
//
//volatile 关键字
//
 volatile int flag=0;//不能优化到寄存器，保持内存可见性！

void handler(int signo)
{
  printf("get %d signo!\n",signo);
  flag = 1;
}

int main()
{

  signal(2,handler);
 while(!flag);
 printf("proc Normal Quit!\n");

  return 0;
}
